Scan testing is a technique developed in the late 1980's for testing an integrated circuit device. The fundamental concept of this technique is to add shift registers to the boundary of the integrated circuit that can be used to shift in logic values known as test vectors as input values. The output values produced by the integrated circuit in response to the test vectors are then shifted out of the integrated circuit to determine whether the output matched expected values. This scan testing technique was later standardized as the IEEE (Institute of Electrical and Electronic Engineers) 1149.1 standard.
Scan testing is used by many manufacturers to test electrical connections on a device-level, board-level, as well as system-level. This test is also heavily relied on during printed circuit assembly process, configure-to-order process, field installation, and repair process. To perform scan-based testing, a scan controller is used to interface between a personal computer or workstation host system and the system-under-test. The host system generally provides a human interface to the testing process. The host system may be used to formulate the test vectors as well as analyzing the test results. The scan controller provides hardware and software support to enable the host system to communicate with the system-under-test and to drive the electrical protocol defined by the IEEE 1149.1 specification.
The scan controller is a microprocessor-based system that has a number of shortcomings. The microprocessor-based scan controller has a data transfer latency problem that stems from the interrupt or polling process that is used to transfer data between the host system and the system-under-test. A second problem is the cost associated with the microprocessor-based scan controller. Such a controller requires, in addition to the microprocessor itself, other electronic components for scratch memory, firmware storage, decode logic, etc. In addition to the cost, these extra components also occupy precious board real estate. The significant expense associated with authoring, debugging, and long-term maintenance of firmware resident in the controller also adds to the cost of the controller. Because electronic part obsolescence is common, frequent firmware modification or update, or even the replacement of the microprocessor itself may become necessary.